﻿namespace FactoryPattern;

//工厂模式
public static class Program
{
    private static void Main()
    {
        SimpleFactory.SimpleFactory.TestSimpleFactory(); //简单工厂：简单实用，但违反开放封闭；
        ReflectFactory.ReflectFactory.TestReflectFactory();//反射工厂：可以最大限度的解耦。 
        FactoryMethod.FactoryMethod.TestFactoryMethod();//工厂方法：开放封闭，单一产品；
        AbstractFactory.AbstractFactory.TestAbstractFactory();//抽象工厂：开放封闭，多个产品；
    }
}